home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / RCS / tape.h,v < prev    next >
Text File  |  1991-07-26  |  5KB  |  236 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.5
  10. date     91.07.26.17.15.05;  author jhh;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     90.07.25.14.53.20;  author fubar;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     90.05.03.13.54.55;  author rab;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     88.11.17.09.03.27;  author brent;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     88.06.21.12.07.47;  author ouster;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.5
  40. log
  41. @Added more tape device information (checked in by shirriff)
  42. @
  43. text
  44. @/* 
  45.  * tape.h --
  46.  *
  47.  *    Definitions and macros for tape devices.
  48.  *
  49.  * Copyright 1991 Regents of the University of California
  50.  * Permission to use, copy, modify, and distribute this
  51.  * software and its documentation for any purpose and without
  52.  * fee is hereby granted, provided that this copyright
  53.  * notice appears in all copies.  The University of California
  54.  * makes no representations about the suitability of this
  55.  * software for any purpose.  It is provided "as is" without
  56.  * express or implied warranty.
  57.  */
  58.  
  59. #ifndef _TAPE
  60. #define _TAPE
  61.  
  62. #include <sys/types.h>
  63.  
  64. /*   
  65.  * Tape-drive specific commands:
  66.  *
  67.  *   IOC_TAPE_COMMAND        Issue a tape drive specific command
  68.  *   IOC_TAPE_STATUS        Return status info from a tape drive
  69.  */
  70. #define IOC_TAPE            (3 << 16)
  71. #define IOC_TAPE_COMMAND        (IOC_TAPE | 0x1)
  72. #define IOC_TAPE_STATUS            (IOC_TAPE | 0x2)
  73.  
  74. /*
  75.  * Mag tape control, IOC_TAPE_COMMAND
  76.  * The one IN parameter specifies a specific
  77.  * tape command and a repetition count.
  78.  */
  79. typedef struct Dev_TapeCommand {
  80.     int command;
  81.     int count;
  82. } Dev_TapeCommand;
  83.  
  84. #define IOC_TAPE_WEOF            0
  85. #define IOC_TAPE_REWIND            1
  86. #define IOC_TAPE_SKIP_BLOCKS        2
  87. #define IOC_TAPE_SKIP_FILES        3
  88. #define IOC_TAPE_BACKUP_BLOCKS        4
  89. #define IOC_TAPE_BACKUP_FILES        5
  90. #define IOC_TAPE_OFFLINE        6
  91. #define IOC_TAPE_RETENSION        7
  92. #define IOC_TAPE_ERASE            8
  93. #define IOC_TAPE_NO_OP            9
  94. #define IOC_TAPE_DONT_RETENSION        10
  95. #define IOC_TAPE_SKIP_EOD        11
  96. #define IOC_TAPE_GOTO_BLOCK        12
  97. #define IOC_TAPE_LOAD            13
  98. #define IOC_TAPE_UNLOAD            14
  99. #define IOC_TAPE_PREVENT_REMOVAL    15
  100. #define IOC_TAPE_ALLOW_REMOVAL        16
  101.  
  102.  
  103. /*
  104.  * Mag tape status, IOC_TAPE_STATUS
  105.  * This returns status info from drives.
  106.  * Any fields that are not valid will be set to -1.
  107.  * Legal values for drive-specific fields can be found in the header files
  108.  * in /sprite/lib/include/dev.
  109.  *
  110.  * NOTE: error counters may be reset by the device.  For example,
  111.  * the Exabyte will reset the counters when a new tape is loaded,
  112.  * the tape is rewound, or when you switch from reading to writing or
  113.  * vice versa.
  114.  */
  115.  
  116. typedef struct Dev_TapeStatus {
  117.     int        type;        /* Type of tape drive, see below. */
  118.     int        blockSize;    /* Size of physical block. */
  119.     int        position;    /* Current block number. */
  120.     int        remaining;    /* Number of blocks remaining on the tape. */
  121.     int        dataError;    /* Number of data errors -- bad read after
  122.                  * write or bad read. */
  123.     int        readWriteRetry;    /* Number of reads/writes that had to be
  124.                  * retried. */
  125.     int        trackingRetry;    /* Number of tracking retries. */
  126.     Boolean    writeProtect;    /* TRUE if tape is write-protected. */
  127.     int        bufferedMode;    /* Buffered mode.  Value is drive specific. */
  128.     int        speed;        /* Tape speed. Value is drive specific. */
  129.     int        density;    /* Tape density. Value is drive specific. */
  130.     char    serial[16];    /* Serial number of drive. */
  131. } Dev_TapeStatus;
  132.  
  133. /*
  134.  * Stubs to interface to Fs_IOControl
  135.  */
  136. extern ReturnStatus Ioc_TapeStatus();
  137. extern ReturnStatus Ioc_TapeCommand();
  138.  
  139. /*
  140.  * Types for tape drive controllers.
  141.  */
  142.  
  143. #define DEV_TAPE_UNKNOWN    0
  144. #define DEV_TAPE_SYSGEN        1
  145. #define DEV_TAPE_EMULEX        2
  146.  
  147. #define DEV_TAPE_8MM        0x100
  148. #define DEV_TAPE_EXB8200    (DEV_TAPE_8MM | 1)
  149. #define DEV_TAPE_EXB8500    (DEV_TAPE_8MM | 2)
  150.  
  151. #define DEV_TAPE_4MM        0x200
  152. #define DEV_TAPE_TLZ04        (DEV_TAPE_4MM | 1)
  153.  
  154. #endif /* _TAPE */
  155. @
  156.  
  157.  
  158. 1.4
  159. log
  160. @Added 2 ioctl defs for Symmetry tape drive
  161. @
  162. text
  163. @d1 1
  164. a1 1
  165. /*
  166. d4 1
  167. a4 4
  168.  *    Definitions and macros for Mag Tape manipulation.
  169.  *
  170.  * Copyright (C) 1985 Regents of the University of California
  171.  * All rights reserved.
  172. d6 8
  173. a13 2
  174.  *
  175.  * $Header: /crg2/bruces6/sprite/src/lib/include/dev/RCS/tape.h,v 1.2 90/04/23 14:19:35 fubar Exp $ SPRITE (Berkeley)
  176. d19 1
  177. a50 1
  178. /* next two are for Symmetry SCED tape drive */
  179. d53 5
  180. d63 8
  181. d72 1
  182. d74 14
  183. a87 6
  184.     int        type;        /* Tape drive Controler type */
  185.     int        statusReg;    /* Copy of device status register */
  186.     int        errorReg;    /* Copy of device error register */
  187.     int        residual;    /* Residual after last command */
  188.     int        fileNumber;    /* Current file number on the tape */
  189.     int        blockNumber;    /* Current block number on the tape */
  190. d99 2
  191. d103 7
  192. a109 1
  193. #define DEV_TAPE_EXABYTE    3
  194. @
  195.  
  196.  
  197. 1.3
  198. log
  199. @Commented out characters following endif.
  200. @
  201. text
  202. @d10 1
  203. a10 1
  204.  * $Header: /sprite/src/lib/include/dev/RCS/tape.h,v 1.2 88/11/17 09:03:27 brent Exp Locker: rab $ SPRITE (Berkeley)
  205. d47 4
  206. @
  207.  
  208.  
  209. 1.2
  210. log
  211. @Added DEV_TAPE_EXABYTE
  212. @
  213. text
  214. @d10 1
  215. a10 1
  216.  * $Header: /sprite/src/lib/include/dev/RCS/tape.h,v 1.1 88/06/21 12:07:47 ouster Exp Locker: brent $ SPRITE (Berkeley)
  217. d74 1
  218. a74 1
  219. #endif _TAPE
  220. @
  221.  
  222.  
  223. 1.1
  224. log
  225. @Initial revision
  226. @
  227. text
  228. @d10 1
  229. a10 1
  230.  * $Header: tape.h,v 2.0 87/08/11 09:19:35 brent Exp $ SPRITE (Berkeley)
  231. d70 3
  232. a72 2
  233. #define DEV_TAPE_SYSGEN        0x1
  234. #define DEV_TAPE_EMULUX        0x2
  235. @
  236.